A client application may receive an error (such as a timeout error) from a resource manager in response to issuing a request to commit a set of commands. Generally, a client application interacts with a server through a session. If access to the session with the server is lost, the application would only be able to generate an error message indicating the communication has failed. The application would be unable to inform its users, which may include other applications, whether the server had executed any of the requested commands, and, if so, whether the execution resulted in any data modifications, or even more, whether the server is continuing to execute the requested commands disconnected from the client application.
Without determining the outcome of the commands in a guaranteed and scalable manner, following an error (such as a loss of communication or timeout or any other error), the application is left not knowing what happened to the execution of the requested commands. The application or user may attempt to retry commands, which could cause logical corruption by submitting a duplicate execution request.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.